<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Functional Programming System</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Functional_Programming_System"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Functional_Programming_System rootpage-Functional_Programming_System skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Functional Programming System</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><div style="margin:1em auto; border:3px double #EEB422; padding:1em; background:var(--background-color-base, #FFFFFF); color:var(--color-base, #202122); border-radius:1em; font-size: 90%; overflow:hidden; max-width:90%;">
<table>
<tbody><tr>
<td class="noresize">
</td>
<td>Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem <b>Themengebiet Informatik</b> auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der <b>Diskussion!</b> <small>(<span id="NeuerAbschnitt" class=""><a class="external text" href="https://de.wikipedia.org/w/index.php?title=Wikipedia:Redaktion_Informatik/Qualit%C3%A4tssicherung&action=edit&section=new&preload=Vorlage:$1&preloadparams%5B%5D=Artikel+besteht+haupts%C3%A4chlich+aus+nicht+erkl%C3%A4rten+Beispielen+und+Weblinks.+Die+wenigen+Textabs%C3%A4tze+lassen+kein+Konzept+erkennen.+--%5B%5BBenutzer%3ARaphael+Kirchner%7CRaphael+Kirchner%5D%5D+15%3A31%2C+20.+Nov.+2010+%28CET%29&preloadtitle=%5B%5BFunctional+Programming+System%5D%5D"><span title="Am Seitenende Abschnitt hinzufügen: Wikipedia:Redaktion Informatik/Qualitätssicherung">+</span></a></span>)</small>
<p><br> <b>Begründung:</b> Artikel besteht hauptsächlich aus nicht erklärten Beispielen und Weblinks. Die wenigen Textabsätze lassen kein Konzept erkennen. --Raphael Kirchner 15:31, 20. Nov. 2010 (CET)
</p>
</td></tr></tbody></table>
</div>
<p>Der Begriff <span lang="en"><b>Functional Programming System</b></span> (abgekürzt <b>FP-System</b>) bezeichnet ein von <a href="John_W._Backus" title="John W. Backus">John W. Backus</a> entwickeltes Konzept <a href="Funktionale_Programmiersprache" class="mw-redirect" title="Funktionale Programmiersprache">funktionaler Programmiersprachen</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Backus ging dabei von der Beobachtung aus, dass gängige Programmiersprachen Computerprogramme als ein kleinteilige serialisierte Datenmanipulation darstellen, da sie gedanklich vom von-Neumann'schen Maschinenmodell ausgehen. Daraus resultieren laut Backus zwei Probleme. Zum einen, dass von-Neumann-Programme schwer parallelisierbar sind. Zum anderen, dass es schwer ist, über die Eigenschaften von <a href="Von-Neumann-Architektur" title="Von-Neumann-Architektur">Von-Neumann-Programmen</a> formal zu argumentieren oder sie zu transformieren.
Das <i>Functional Programming System</i> adressiert diese Probleme durch Konstruktion eines Programms <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle P}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>P</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle P}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b4dc73bf40314945ff376bd363916a738548d40a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.745ex; height:2.176ex;" alt="{\displaystyle P}" loading="lazy"></span> aus einer Komposition <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle P=F_{n}\circ F_{n-1}\circ F_{n-2}\circ ...\circ F_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>P</mi>
<mo>=</mo>
<msub>
<mi>F</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo>∘<!-- ∘ --></mo>
<msub>
<mi>F</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
<mo>−<!-- − --></mo>
<mn>1</mn>
</mrow>
</msub>
<mo>∘<!-- ∘ --></mo>
<msub>
<mi>F</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
<mo>−<!-- − --></mo>
<mn>2</mn>
</mrow>
</msub>
<mo>∘<!-- ∘ --></mo>
<mo>.</mo>
<mo>.</mo>
<mo>.</mo>
<mo>∘<!-- ∘ --></mo>
<msub>
<mi>F</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle P=F_{n}\circ F_{n-1}\circ F_{n-2}\circ ...\circ F_{1}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/fe1219bfc12ba8964ec8449e770898ad82c88889.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:29.549ex; height:2.509ex;" alt="{\displaystyle P=F_{n}\circ F_{n-1}\circ F_{n-2}\circ ...\circ F_{1}}" loading="lazy"></span>. Dabei werden größere Mengen strukturierter Daten von einer Funktion zur nächsten weiter gereicht, was technisch eine Parallelisierung der Verarbeitung ermöglicht. Backus zog auch in Betracht, diese Arbeitsweise zur Grundlage einer neuen Computerarchitektur zu machen, die diese Möglichkeit ausnutzt.
</p><p>In einer Rede anlässlich der Verleihung des <a href="Turing_Award" title="Turing Award">Turing Awards</a> an Backus im Jahr 1977 stellte dieser die Idee von FP-Systemen vor. Der Vortragstitel lautete: <i><span lang="en">Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs</span>.</i><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> In einem weiteren Aufsatz legte sich Backus auf den Begriff <i>Function-Level Programming</i> fest.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Funktionales_Programm_zur_Berechnung_des_Skalarprodukts">Funktionales Programm zur Berechnung des Skalarprodukts</h2></div>
<p>Backus gibt mit der Berechnung des <a href="Skalarprodukt" title="Skalarprodukt">Skalarprodukts</a> ein instruktives Beispiel für die Anwendung des <i>Functional Programming System</i>.
</p><p>Die Funktion <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathrm {IP} }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">I</mi>
<mi mathvariant="normal">P</mi>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \mathrm {IP} }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/ca0c60157bf731a32f9bfd8269294e596350c4e2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.422ex; height:2.176ex;" alt="{\displaystyle \mathrm {IP} }" loading="lazy"></span>(„Inner Product“), die das Skalarprodukt zweier Vektoren bestimmt, ist zusammengesetzt aus der verketteten Berechnung der drei Funktionen <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathrm {Trans} ,(\alpha \times )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">T</mi>
<mi mathvariant="normal">r</mi>
<mi mathvariant="normal">a</mi>
<mi mathvariant="normal">n</mi>
<mi mathvariant="normal">s</mi>
</mrow>
<mo>,</mo>
<mo stretchy="false">(</mo>
<mi>α<!-- α --></mi>
<mo>×<!-- × --></mo>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \mathrm {Trans} ,(\alpha \times )}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/dcc64ca0856647810d13a78f5dc313a1694ed3bd.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:12.1ex; height:2.843ex;" alt="{\displaystyle \mathrm {Trans} ,(\alpha \times )}" loading="lazy"></span> und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (/+)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mo>+</mo>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle (/+)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/a7e5652c8038a50591a306625b00966ec722b3a2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:4.78ex; height:2.843ex;" alt="{\displaystyle (/+)}" loading="lazy"></span> (in dieser Reihenfolge), was wie folgt als <a href="Komposition_(Mathematik)" title="Komposition (Mathematik)">Funktionskomposition</a> ausgedrückt wird:
</p><p><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}\mathrm {IP} &=(/+)\circ (\alpha \times )\circ \mathrm {Trans} \end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">I</mi>
<mi mathvariant="normal">P</mi>
</mrow>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mo>+</mo>
<mo stretchy="false">)</mo>
<mo>∘<!-- ∘ --></mo>
<mo stretchy="false">(</mo>
<mi>α<!-- α --></mi>
<mo>×<!-- × --></mo>
<mo stretchy="false">)</mo>
<mo>∘<!-- ∘ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">T</mi>
<mi mathvariant="normal">r</mi>
<mi mathvariant="normal">a</mi>
<mi mathvariant="normal">n</mi>
<mi mathvariant="normal">s</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}\mathrm {IP} &=(/+)\circ (\alpha \times )\circ \mathrm {Trans} \end{aligned}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/45b9a1be3adb49bec96bd40a695d126f1d74a27d.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:26.508ex; height:2.843ex;" alt="{\displaystyle {\begin{aligned}\mathrm {IP} &=(/+)\circ (\alpha \times )\circ \mathrm {Trans} \end{aligned}}}" loading="lazy"></span>
</p><p>Dabei ist <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathrm {Trans} }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">T</mi>
<mi mathvariant="normal">r</mi>
<mi mathvariant="normal">a</mi>
<mi mathvariant="normal">n</mi>
<mi mathvariant="normal">s</mi>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \mathrm {Trans} }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b4a011bd9fc0e06c79488e1b1657caca595edb8d.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:5.961ex; height:2.176ex;" alt="{\displaystyle \mathrm {Trans} }" loading="lazy"></span> eine Funktion, die eine Matrix <a href="Transponierte_Matrix" title="Transponierte Matrix">transponiert</a>. Dieser Zusammenhang wird in FP beispielsweise für eine Matrix
<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\Bigl (}{\begin{smallmatrix}3&4\\7&1\\-1&0\end{smallmatrix}}{\Bigr )}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-OPEN">
<mo maxsize="1.623em" minsize="1.623em">(</mo>
</mrow>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mstyle scriptlevel="1">
<mtable rowspacing=".2em" columnspacing="0.333em" displaystyle="false">
<mtr>
<mtd>
<mn>3</mn>
</mtd>
<mtd>
<mn>4</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>7</mn>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>−<!-- − --></mo>
<mn>1</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mstyle>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-CLOSE">
<mo maxsize="1.623em" minsize="1.623em">)</mo>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\Bigl (}{\begin{smallmatrix}3&4\\7&1\\-1&0\end{smallmatrix}}{\Bigr )}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/6070a8b0f65cceba17ffc000a184141d63104d24.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.005ex; width:7.223ex; height:5.009ex;" alt="{\displaystyle {\Bigl (}{\begin{smallmatrix}3&4\\7&1\\-1&0\end{smallmatrix}}{\Bigr )}}" loading="lazy"></span> so notiert:
</p><p><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}\mathrm {Trans} (\langle \langle 3,4\rangle ,\langle 7,1\rangle ,\langle -1,0\rangle \rangle )&=\langle \langle 3,7,-1\rangle ,\langle 4,1,0\rangle \rangle \end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">T</mi>
<mi mathvariant="normal">r</mi>
<mi mathvariant="normal">a</mi>
<mi mathvariant="normal">n</mi>
<mi mathvariant="normal">s</mi>
</mrow>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>3</mn>
<mo>,</mo>
<mn>4</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo>,</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>7</mn>
<mo>,</mo>
<mn>1</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo>,</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mo>−<!-- − --></mo>
<mn>1</mn>
<mo>,</mo>
<mn>0</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>3</mn>
<mo>,</mo>
<mn>7</mn>
<mo>,</mo>
<mo>−<!-- − --></mo>
<mn>1</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo>,</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>4</mn>
<mo>,</mo>
<mn>1</mn>
<mo>,</mo>
<mn>0</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}\mathrm {Trans} (\langle \langle 3,4\rangle ,\langle 7,1\rangle ,\langle -1,0\rangle \rangle )&=\langle \langle 3,7,-1\rangle ,\langle 4,1,0\rangle \rangle \end{aligned}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/738c91112158ec6864714c9eaafd3ed7570b4a3a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:52.19ex; height:2.843ex;" alt="{\displaystyle {\begin{aligned}\mathrm {Trans} (\langle \langle 3,4\rangle ,\langle 7,1\rangle ,\langle -1,0\rangle \rangle )&=\langle \langle 3,7,-1\rangle ,\langle 4,1,0\rangle \rangle \end{aligned}}}" loading="lazy"></span>
</p><p>Die Symbole <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \alpha }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>α<!-- α --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \alpha }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b79333175c8b3f0840bfb4ec41b8072c83ea88d3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.488ex; height:1.676ex;" alt="{\displaystyle \alpha }" loading="lazy"></span> und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle /}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle /}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/da0c4de1fba637d9799f6c64a6c77bf016d0ce1e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:1.162ex; height:2.843ex;" alt="{\displaystyle /}" loading="lazy"></span> bezeichnen <i>Funktionale</i>. Diese übernehmen andere Funktionen um neue Funktionen zu bilden. In der Form <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (\alpha \times )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">(</mo>
<mi>α<!-- α --></mi>
<mo>×<!-- × --></mo>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle (\alpha \times )}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/0438e5adabcc8d175d0d69d13330127b92c85189.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.105ex; height:2.843ex;" alt="{\displaystyle (\alpha \times )}" loading="lazy"></span> übernimmt <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \alpha }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>α<!-- α --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \alpha }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b79333175c8b3f0840bfb4ec41b8072c83ea88d3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.488ex; height:1.676ex;" alt="{\displaystyle \alpha }" loading="lazy"></span> die zweistellige Multiplikationsfunktion <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \times }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>×<!-- × --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \times }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/0ffafff1ad26cbe49045f19a67ce532116a32703.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: 0.019ex; margin-bottom: -0.19ex; width:1.808ex; height:1.509ex;" alt="{\displaystyle \times }" loading="lazy"></span> und liefert eine Funktion, die <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \times }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>×<!-- × --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \times }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/0ffafff1ad26cbe49045f19a67ce532116a32703.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: 0.019ex; margin-bottom: -0.19ex; width:1.808ex; height:1.509ex;" alt="{\displaystyle \times }" loading="lazy"></span> auf alle Elemente einer übergebenen Liste von Paaren anwendet. Das Berechnungsergebnis ist dann die Liste der einzelnen Produkte. In modernen Programmiersprachen heißt das Funktional <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \alpha }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>α<!-- α --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \alpha }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b79333175c8b3f0840bfb4ec41b8072c83ea88d3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.488ex; height:1.676ex;" alt="{\displaystyle \alpha }" loading="lazy"></span> meistens <code>map</code>. Backus nennt sie auch <code>ApplyToAll</code>.
</p><p>Die Funktion <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle /}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle /}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/da0c4de1fba637d9799f6c64a6c77bf016d0ce1e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:1.162ex; height:2.843ex;" alt="{\displaystyle /}" loading="lazy"></span> schließlich entspricht grob der Funktion <code>reduce</code> oder <code>fold</code> in üblicher funktionaler Programmierung. Backus nennt sie <code>Insert</code> und meint damit, dass der Ausdruck <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (/+)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mo>+</mo>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle (/+)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/a7e5652c8038a50591a306625b00966ec722b3a2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:4.78ex; height:2.843ex;" alt="{\displaystyle (/+)}" loading="lazy"></span> eine Funktion darstellt, die in einer übergebenen Liste die Operation <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle +}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>+</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle +}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/fe6ef363cd19902d1a7a71fb1c8b21e8ede52406.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:1.808ex; height:2.176ex;" alt="{\displaystyle +}" loading="lazy"></span> zwischen je zwei Elemente einfügt. Es gilt also
<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (/+)(\langle 2,3,4\rangle )=2+3+4=9}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mo>+</mo>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>2</mn>
<mo>,</mo>
<mn>3</mn>
<mo>,</mo>
<mn>4</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mn>2</mn>
<mo>+</mo>
<mn>3</mn>
<mo>+</mo>
<mn>4</mn>
<mo>=</mo>
<mn>9</mn>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle (/+)(\langle 2,3,4\rangle )=2+3+4=9}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b626d33088c5ed02186da675fb175e141c4c9492.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:30.481ex; height:2.843ex;" alt="{\displaystyle (/+)(\langle 2,3,4\rangle )=2+3+4=9}" loading="lazy"></span>.
</p><p>Die Berechnung der Skalarprodukt-Funktion <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathrm {IP} }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">I</mi>
<mi mathvariant="normal">P</mi>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \mathrm {IP} }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/ca0c60157bf731a32f9bfd8269294e596350c4e2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.422ex; height:2.176ex;" alt="{\displaystyle \mathrm {IP} }" loading="lazy"></span> angewendet auf die beiden Vektoren <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \langle 1,2,3\rangle }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>1</mn>
<mo>,</mo>
<mn>2</mn>
<mo>,</mo>
<mn>3</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \langle 1,2,3\rangle }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b7035fe004039b3f11a88be5758a290c80f74315.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:7.365ex; height:2.843ex;" alt="{\displaystyle \langle 1,2,3\rangle }" loading="lazy"></span> und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \langle 6,5,4\rangle }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>6</mn>
<mo>,</mo>
<mn>5</mn>
<mo>,</mo>
<mn>4</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \langle 6,5,4\rangle }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/a1f52065af25201df56730f9be3fd980c22e56b3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:7.365ex; height:2.843ex;" alt="{\displaystyle \langle 6,5,4\rangle }" loading="lazy"></span> kann dann so verstanden werden:
</p><p><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}&\mathrm {IP} (\langle \langle 1,2,3\rangle ,\langle 6,5,4\rangle \rangle )\\&=((/+)\circ (\alpha \times )\circ \mathrm {Trans} )(\langle \langle 1,2,3\rangle ,\langle 6,5,4\rangle \rangle )\\&=((/+)\circ (\alpha \times ))(\mathrm {Trans} (\langle \langle 1,2,3\rangle ,\langle 6,5,4\rangle \rangle )\\&=(/+)((\alpha \times )(\langle \langle 1,6\rangle ,\langle 2,5\rangle ,\langle 3,4\rangle \rangle )\\&=(/+)(\langle \times (\langle 1,6\rangle ),\times (\langle 2,5\langle ),\times (\langle 3,4\rangle )\rangle \\&=(/+)(\langle 6,10,12\rangle )\\&=+(\langle 6,+(\langle 10,12\rangle )\rangle \\&=28\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd></mtd>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">I</mi>
<mi mathvariant="normal">P</mi>
</mrow>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>1</mn>
<mo>,</mo>
<mn>2</mn>
<mo>,</mo>
<mn>3</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo>,</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>6</mn>
<mo>,</mo>
<mn>5</mn>
<mo>,</mo>
<mn>4</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo stretchy="false">(</mo>
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mo>+</mo>
<mo stretchy="false">)</mo>
<mo>∘<!-- ∘ --></mo>
<mo stretchy="false">(</mo>
<mi>α<!-- α --></mi>
<mo>×<!-- × --></mo>
<mo stretchy="false">)</mo>
<mo>∘<!-- ∘ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">T</mi>
<mi mathvariant="normal">r</mi>
<mi mathvariant="normal">a</mi>
<mi mathvariant="normal">n</mi>
<mi mathvariant="normal">s</mi>
</mrow>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>1</mn>
<mo>,</mo>
<mn>2</mn>
<mo>,</mo>
<mn>3</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo>,</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>6</mn>
<mo>,</mo>
<mn>5</mn>
<mo>,</mo>
<mn>4</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo stretchy="false">(</mo>
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mo>+</mo>
<mo stretchy="false">)</mo>
<mo>∘<!-- ∘ --></mo>
<mo stretchy="false">(</mo>
<mi>α<!-- α --></mi>
<mo>×<!-- × --></mo>
<mo stretchy="false">)</mo>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">T</mi>
<mi mathvariant="normal">r</mi>
<mi mathvariant="normal">a</mi>
<mi mathvariant="normal">n</mi>
<mi mathvariant="normal">s</mi>
</mrow>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>1</mn>
<mo>,</mo>
<mn>2</mn>
<mo>,</mo>
<mn>3</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo>,</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>6</mn>
<mo>,</mo>
<mn>5</mn>
<mo>,</mo>
<mn>4</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mo>+</mo>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mo stretchy="false">(</mo>
<mi>α<!-- α --></mi>
<mo>×<!-- × --></mo>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>1</mn>
<mo>,</mo>
<mn>6</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo>,</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>2</mn>
<mo>,</mo>
<mn>5</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo>,</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>3</mn>
<mo>,</mo>
<mn>4</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mo>+</mo>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mo>×<!-- × --></mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>1</mn>
<mo>,</mo>
<mn>6</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
<mo>,</mo>
<mo>×<!-- × --></mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>2</mn>
<mo>,</mo>
<mn>5</mn>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mo stretchy="false">)</mo>
<mo>,</mo>
<mo>×<!-- × --></mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>3</mn>
<mo>,</mo>
<mn>4</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mo>+</mo>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>6</mn>
<mo>,</mo>
<mn>10</mn>
<mo>,</mo>
<mn>12</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo>+</mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>6</mn>
<mo>,</mo>
<mo>+</mo>
<mo stretchy="false">(</mo>
<mo fence="false" stretchy="false">⟨<!-- ⟨ --></mo>
<mn>10</mn>
<mo>,</mo>
<mn>12</mn>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
<mo stretchy="false">)</mo>
<mo fence="false" stretchy="false">⟩<!-- ⟩ --></mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mn>28</mn>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}&\mathrm {IP} (\langle \langle 1,2,3\rangle ,\langle 6,5,4\rangle \rangle )\\&=((/+)\circ (\alpha \times )\circ \mathrm {Trans} )(\langle \langle 1,2,3\rangle ,\langle 6,5,4\rangle \rangle )\\&=((/+)\circ (\alpha \times ))(\mathrm {Trans} (\langle \langle 1,2,3\rangle ,\langle 6,5,4\rangle \rangle )\\&=(/+)((\alpha \times )(\langle \langle 1,6\rangle ,\langle 2,5\rangle ,\langle 3,4\rangle \rangle )\\&=(/+)(\langle \times (\langle 1,6\rangle ),\times (\langle 2,5\langle ),\times (\langle 3,4\rangle )\rangle \\&=(/+)(\langle 6,10,12\rangle )\\&=+(\langle 6,+(\langle 10,12\rangle )\rangle \\&=28\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/a6d191d35748672aa684c040db601ac861021169.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -11.838ex; width:45.276ex; height:24.843ex;" alt="{\displaystyle {\begin{aligned}&\mathrm {IP} (\langle \langle 1,2,3\rangle ,\langle 6,5,4\rangle \rangle )\\&=((/+)\circ (\alpha \times )\circ \mathrm {Trans} )(\langle \langle 1,2,3\rangle ,\langle 6,5,4\rangle \rangle )\\&=((/+)\circ (\alpha \times ))(\mathrm {Trans} (\langle \langle 1,2,3\rangle ,\langle 6,5,4\rangle \rangle )\\&=(/+)((\alpha \times )(\langle \langle 1,6\rangle ,\langle 2,5\rangle ,\langle 3,4\rangle \rangle )\\&=(/+)(\langle \times (\langle 1,6\rangle ),\times (\langle 2,5\langle ),\times (\langle 3,4\rangle )\rangle \\&=(/+)(\langle 6,10,12\rangle )\\&=+(\langle 6,+(\langle 10,12\rangle )\rangle \\&=28\end{aligned}}}" loading="lazy"></span>
</p><p>Der Rechenprozess stellt also eine Verarbeitungspipeline ohne inneren Zustand dar, der die Eingabe in drei getrennten Arbeitsschritten in die Ausgabe überführt. Die Arbeitsschritte selbst können für sich in unterschiedlichem Grad parallelisiert werden. Auch die Erstellung einer Hardware-Pipeline für das Programm <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle IP}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>I</mi>
<mi>P</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle IP}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/263a4090013b275d9a068b53a019e5609307355f.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.917ex; height:2.176ex;" alt="{\displaystyle IP}" loading="lazy"></span> wäre möglich.
</p>
<div class="mw-heading mw-heading2"><h2 id="Notationen_im_FP-System">Notationen im FP-System</h2></div>
<p>Backus verwendet eine lose an mathematische Konventionen angelehnte Notation und ergänzt diese um <i>McCarthy'sche bedingte Ausdrücke</i> sowie eine rekursive Darstellung für WHILE-Schleifen. Entscheidend ist, dass jede Entität eine Funktion darstellt und damit mit dem Kompositionsoperator <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \circ }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>∘<!-- ∘ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \circ }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/99add39d2b681e2de7ff62422c32704a05c7ec31.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: 0.125ex; margin-bottom: -0.297ex; width:1.162ex; height:1.509ex;" alt="{\displaystyle \circ }" loading="lazy"></span> verträglich ist.
</p>
<div class="mw-heading mw-heading3"><h3 id="Zahlen_als_Selektoren">Zahlen als Selektoren</h3></div>
<p>Die Vektorprogrammiersprache <a href="APL_(Programmiersprache)" title="APL (Programmiersprache)">APL</a> hatte einen entscheidenden Einfluss auf das <i>Combinator based functional programming system</i> von John Backus, das ohne <a href="Lambda-Kalk%C3%BCl" title="Lambda-Kalkül">Lambda-Variablenliste</a> auskommt; stattdessen werden Selektoren (Zahlen) für das Herauspicken von Werten aus einer Sequenz verwendet.
</p>
<pre>1:<x<sub>1</sub>,…,x<sub>n</sub>> → x<sub>1</sub>
<i>i</i>:<x<sub>1</sub>,…,x<sub>i</sub>,…,x<sub>n</sub>> → x<sub>i</sub>
</pre>
<table class="wikitable">
<caption><big>Feste Anzahl von Kombinatoren / Funktionalen Formen</big>
</caption>
<tbody><tr>
<th>Combining …
</th>
<th>… Form
</th>
<th>
</th></tr>
<tr>
<td><b>Applikation</b>
</td>
<td>f <b>:</b> x
</td>
<td>= f(x)
</td></tr>
<tr>
<td><b>Komposition</b>
</td>
<td>(f <b>o</b> g) : x
</td>
<td>= f(g(x))
</td></tr>
<tr>
<td><b>Konstruktion</b>
</td>
<td><b>[</b> f<sub>1</sub> <b>,</b> f<sub>2</sub> <b>,</b> … <b>,</b> f<sub>n</sub> <b>]</b> : x
</td>
<td>= <b><</b> f<sub>1</sub>:x <b>,</b> f<sub>2</sub>:x <b>,</b> … <b>,</b> f<sub>n</sub>:x <b>></b>
</td></tr>
<tr>
<td><b>Kondition</b>
</td>
<td>(p <b>→</b> f <b>;</b> g) : x
</td>
<td>= wenn p:x = <b>T</b> dann f:x sonst wenn p:x = <b>F</b> dann g:x sonst <b>⊥</b>
</td></tr>
<tr>
<td><b>Konstante</b>
</td>
<td><b>~</b>x : y
</td>
<td>= wenn y = <b>⊥</b> dann <b>⊥</b> sonst x
</td></tr>
<tr>
<td><b>Insert</b>
</td>
<td>(<b>/</b> f) : <b><</b>x<sub>1</sub> , x<sub>2</sub> , … , x<sub>n</sub><b>></b>
</td>
<td>= f:<b><</b>x<sub>1</sub> , f:<b><</b>x<sub>2</sub> , … f:<b><</b>x<sub>n-1</sub> , x<sub>n</sub><b>>>></b>
</td></tr>
<tr>
<td><b>Apply to All</b>
</td>
<td>(<b>α</b> f) : <b><</b>x<sub>1</sub> , x<sub>2</sub> , … , x<sub>n</sub><b>></b>
</td>
<td>= <b><</b> f:x<sub>1</sub> , f:x<sub>2</sub> , … , f:x<sub>n</sub> <b>></b>
</td></tr>
<tr>
<td><b>Binary to Unary</b>
</td>
<td><b>bu</b> f x
</td>
<td>
</td></tr>
<tr>
<td><b>While-Schleife</b>
</td>
<td>(<b>while</b> p f) : x
</td>
<td>= wenn p:x = <b>T</b> dann (<b>while</b> p f)<b>:</b>(f<b>:</b>x) sonst wenn p:x = <b>F</b> dann x sonst <b>⊥</b>
</td></tr></tbody></table>
<p>und die Definition von monadischen Funktionen:
</p>
<pre><b>Def</b> Name <b>≡</b> Term
</pre>
<p>Mit <b>⊥</b> meinte Backus den Wert „Bottom“, ein Wert wie „undefiniert“ oder „Ausnahme“.
<b>T</b> und <b>F</b> sind die Werte für „wahr“ und „falsch“.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weiterentwicklung_von_FP-Systemen">Weiterentwicklung von FP-Systemen</h2></div>
<p>Ein Team aus John Backus, John Williams und Edward Wimmers entwickelte 1989 am <a href="IBM_Almaden_Research_Center" title="IBM Almaden Research Center">IBM Almaden Research Center</a> den Nachfolger FL (Function-Level Programming). Mit diesem Konzept soll man Programme umstellen können so bequem wie man in der Mathematik Gleichungen umstellen kann, dazu musste referenzielle Transparenz gewährleistet sein. Das soll einer neuen Dimension von Programmoptimierung dienen (EFL). Backus wollte mit FL aus der „damaligen Informatik“ eine Ingenieurs-Disziplin machen. Wiederum einige Weiterentwicklungen von FL sind <a href="J_(Programmiersprache)" title="J (Programmiersprache)">J</a> (Einsatzgebiet wie APL) und PLaSM, eine Programmiersprache für Geometrie.
</p>
<div class="mw-heading mw-heading2"><h2 id="FP-Implementierungen">FP-Implementierungen</h2></div>
<ul><li>INTERACTIVE FP,<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Hilfeseite<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> dazu</li>
<li>FP-Compiler,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> der sich selbst nach C kompiliert, <a rel="nofollow" class="external text" href="https://bitbucket.org/bunny351/furry-paws/src/master/">Repo</a> dazu</li>
<li>Pointfrip Calculator for Android<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li>
<li>FP trivia,<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a rel="nofollow" class="external text" href="https://github.com/metazip/pointfrip">FP Repo</a> in Lazarus dazu</li>
<li>PLaSM (<b>P</b>rogramming <b>La</b>nguage for <b>S</b>olid <b>M</b>odeling), eine funktionale Programmiersprache für die Anwendung im <a href="CAD" title="CAD">CAD</a>, die an der <a href="Universit%C3%A4t_Rom_III" title="Universität Rom III">Universität Rom III</a> entwickelt wird.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Algebraische_Programmiersprache" title="Algebraische Programmiersprache">Algebraische Programmiersprache</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Wolfram-Manfred Lippe: <cite style="font-style:italic">Funktionale und Applikative Programmierung: Grundlagen, Sprachen, Implementierungstechniken</cite>. 1. Auflage. <a href="Springer_Science%2BBusiness_Media" title="Springer Science+Business Media">Springer</a>, Berlin 2009, ISBN 978-3-540-89091-1 (<a rel="nofollow" class="external text" href="https://books.google.de/books?id=tn4CONLM7QEC&pg=PA72#v=onepage">eingeschränkte Vorschau</a> in der Google-Buchsuche).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Functional+Programming+System&rft.au=Wolfram-Manfred+Lippe&rft.btitle=Funktionale+und+Applikative+Programmierung%3A+Grundlagen%2C+Sprachen%2C+Implementierungstechniken&rft.date=2009&rft.edition=1.&rft.genre=book&rft.isbn=9783540890911&rft.place=Berlin&rft.pub=Springer" style="display:none"> </span></li>
<li>Alberto Paoluzzi e.a.: <cite style="font-style:italic">Geometric Programming for Computer-Aided Design</cite>. 1. Auflage. <a href="John_Wiley_%26_Sons" title="John Wiley & Sons">Wiley</a>, Chichester 2003, ISBN 978-0-471-89942-6 (<a rel="nofollow" class="external text" href="https://books.google.de/books?id=w6q6Bh4HcfEC&pg=PA1#v=onepage">eingeschränkte Vorschau</a> in der Google-Buchsuche).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Functional+Programming+System&rft.au=Alberto+Paoluzzi+e.a.&rft.btitle=Geometric+Programming+for+Computer-Aided+Design&rft.date=2003&rft.edition=1.&rft.genre=book&rft.isbn=9780471899426&rft.place=Chichester&rft.pub=Wiley" style="display:none"> </span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Lippe 2009, S. 73</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://dl.acm.org/doi/pdf/10.1145/359576.359579">Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs</a> Stanford University, 1978 (PDF; 2,87 MB)</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://portal.acm.org/citation.cfm?id=806757&preflayout=flat">Function Level Programs as Mathematical Objects</a> (PDF)</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r261891140">
/* start https://de.wikipedia.org/ */
.mw-parser-output .webarchiv-memento a{color:inherit}
/* end https://de.wikipedia.org/ */
</style><a rel="nofollow" class="external text" href="https://web.archive.org/web/20190510141711/http://www.cse.sc.edu/~bays/group9/index1.html">INTERACTIVE FP</a> (<span class="webarchiv-memento"><a href="Webarchivierung#Begrifflichkeiten" title="Webarchivierung">Memento</a></span> des <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */
.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}
/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fwww.cse.sc.edu%2F%7Ebays%2Fgroup9%2Findex1.html">Originals</a></span> vom 10. Mai 2019 im <i><a href="Internet_Archive" title="Internet Archive">Internet Archive</a></i>) <small class="archiv-bot"><span class="wp_boppel noviewer" aria-hidden="true" role="presentation"><span typeof="mw:File"><span title="i"></span></span></span> <b>Info:</b> Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</small><span style="display:none"><a rel="nofollow" class="external text" href="http://IABotmemento.invalid/http://www.cse.sc.edu/~bays/group9/index1.html">@1</a></span><span style="display:none"><a rel="nofollow" class="external text" href="http://www.cse.sc.edu/~bays/group9/index1.html">@2</a></span><span style="display:none">Vorlage:Webachiv/IABot/www.cse.sc.edu</span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20190510141731/http://www.cse.sc.edu/~bays/group9/help.html">INTERACTVE FP – Help</a> (<span class="webarchiv-memento"><a href="Webarchivierung#Begrifflichkeiten" title="Webarchivierung">Memento</a></span> des <span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fwww.cse.sc.edu%2F%7Ebays%2Fgroup9%2Fhelp.html">Originals</a></span> vom 10. Mai 2019 im <i><a href="Internet_Archive" title="Internet Archive">Internet Archive</a></i>) <small class="archiv-bot"><span class="wp_boppel noviewer" aria-hidden="true" role="presentation"><span typeof="mw:File"><span title="i"></span></span></span> <b>Info:</b> Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</small><span style="display:none"><a rel="nofollow" class="external text" href="http://IABotmemento.invalid/http://www.cse.sc.edu/~bays/group9/help.html">@1</a></span><span style="display:none"><a rel="nofollow" class="external text" href="http://www.cse.sc.edu/~bays/group9/help.html">@2</a></span><span style="display:none">Vorlage:Webachiv/IABot/www.cse.sc.edu</span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20180106183517/http://www.call-with-current-continuation.org/fp/">Furry Paws</a>, ein FP-Compiler (englisch)</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://pointfrip.github.io/">FP-Interpreter-in-Kotlin</a></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://pointfree-interpreter.github.io/">FP-Interpreter, erstellt in Lazarus/Delphi</a></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="http://www.dia.uniroma3.it/~paoluzzi/plasm/docs/"><i>PLaSM functional language for computing with geometry.</i></a> Alberto Paoluzzi (<a href="Universit%C3%A4t_Rom_III" title="Universität Rom III">Universität Rom III</a>),<span class="Abrufdatum"> abgerufen am 27. November 2010</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AFunctional+Programming+System&rft.title=PLaSM+functional+language+for+computing+with+geometry&rft.description=PLaSM+functional+language+for+computing+with+geometry&rft.identifier=http%3A%2F%2Fwww.dia.uniroma3.it%2F%7Epaoluzzi%2Fplasm%2Fdocs%2F&rft.publisher=%5B%5BAlberto+Paoluzzi%5D%5D+%28%5B%5BUniversit%C3%A4t+Rom+III%5D%5D%29&rft.language=en"> </span></span>
</li>
</ol>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD692.PDF">Kritik am Backus-Aufsatz</a> von <a href="Edsger_W._Dijkstra" title="Edsger W. Dijkstra">Edsger W. Dijkstra</a> (PDF; 143 kB)</li>
<li>John Backus: <a rel="nofollow" class="external text" href="http://www.archive.org/details/JohnBack1987">Function Level Programming and the FL Language</a>, 1987 (Video)</li>
<li><a rel="nofollow" class="external text" href="http://theory.stanford.edu/~aiken/publications/trs/FLProject.pdf">The FL Project: Design of a Functional Language</a> (PDF; 315 kB)</li>
<li><a rel="nofollow" class="external text" href="http://theory.stanford.edu/~aiken/publications/trs/RJ7100.pdf">FL Language Manual, Parts 1 and 2</a> (PDF; 20 MB)</li>
<li><a rel="nofollow" class="external text" href="http://media.johnwiley.com.au/product_data/excerpt/29/04718994/0471899429.pdf">Introduction to FL and PLaSM</a> (PDF; 2,5 MB)</li>
<li><a rel="nofollow" class="external text" href="http://www.math.bas.bg/~bantchev/place/fp.html">FP</a> (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://www.cp.eng.chula.ac.th/~piak/teaching/fp/index-fp.htm">Skripts to FP-Systems</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2024-04-15" href="https://de.wikipedia.org/wiki/?title=Functional_Programming_System&oldid=244059126">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>